From Eiffel to the Java Virtual Machine Adding a new language target to the EiffelStudio compiler
نویسندگان
چکیده
Previous attemps has been made towards translating and executing programs written in Eiffel on the Java platform, as described in Baumgartner [1]. However, the generated Java code has not been easy to use in terms of interoperability between the two languages, due to the restrictions of the Java language. Due to the evolution of the Java language, the work presented in this thesis examines whether it is possible to simplify the translation model of Eiffel to Java. In doing so, this thesis describes a refined translation model that leverages on some of the new features of the Java language, such as the invokedynamic bytecode instruction. Moreover, in order to verify the correctness of the proposed translation model, a description follows on how the translation model may be integrated into the existing EiffelStudio compiler, in terms extending the back-end to target the Java platform. In regards of simplicity, it was found that by using new language features of Java, the translation model of Eiffel to Java could be simplified to the extend that it solves the known issues found in the solution presented in Baumgartner [1]. In trying to integrate the translation model into the existing EiffelStudio compiler, it was found that no public documentation exists which described the internal structure of the EiffelStudio compiler. Neither did a library exists, by which it was possible to generate Java .class files. Consequently, this thesis presents a thorough description of both the infrastructure of compiler, as well as a general purpose library written in Eiffel that makes it possible to generate .class files.
منابع مشابه
SECG: The SCOOP-to-Eiffel Code Generator
The Simple Concurrent Object-Oriented Programming (SCOOP) mechanism introduces inter-object concurrency to the Eiffel language, via addition of one new keyword, separate. We describe a general tool that takes a Eiffel program that uses the separate keyword and translates it into an Eiffel multi-threaded program that uses the Eiffel T HREAD class. The resulting code is thereafter compatible with...
متن کاملSupporting Design by Contract in Java
Design by Contract is a valuable design method for trusted software components. Eiffel shows how to provide appropriate language support for it. However, no such concepts currently exist in Java. Full integration of them into Java may help to improve and guarantee the quality of Java classes. We briefly compare several approaches to extend Java in this way and present our model and a compiler t...
متن کاملIntegrating SCOOP into EVE
SCOOP (Simple Concurrent Object-Oriented Programming) is a simple but very powerful O-O contract based framework for concurrent programming. The idea which was initially published in 1990 has since been developed to a comprehensive model with enriched type system, generalized semantics of contracts, flexible locking policy and library implementation. To use SCOOP one important step is missing: ...
متن کاملA Study on the JavaScript Compiler for Extension of the Smart Cross Platform
In this paper, we will introduce the JavaScript compiler for the SCP (Smart Cross Platform) to expand the SCP’s coverage. The SCP is the virtual machine based solution that supports various programming languages and platforms, and its aims are to support programming languages like ISO/IEC C++, Java and Objective C and smartphone platforms such as Android and iOS. By adding the new compiler to S...
متن کاملAutomated Translation of Java Source Code to Eiffel
Reusability is an important software engineering concept actively advocated for the last forty years. While reusability has been addressed for systems implemented using the same programming language, it does not usually handle interoperability with different programming languages. This paper presents a solution for the reuse of Java code within Eiffel programs based on a source-to-source transl...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012